Large, commercial computer systems (sometimes called data centers) typically have many types of data storage devices. Such data storage devices include solid state disks (RAM disks), cheap and slow magnetic disks, expensive and fast magnetic disks, striped disks, shadowed disks, optical disks, tape drives, and so on.
When a file is created in a computer system having multiple disks, the computer's file system selects a disk on which to store the file. In prior art systems, once a file is created and stored on one of the file system's disks, it is permanently bound to that disk until it is deleted. In other words, the file is device-dependent. This does not efficiently utilize the file system's disks. For example, some disks will be come full while others are nearly empty. The system administrator must take explicit and disruptive actions to redistribute the files among the system's PG,3 disks. This may require copying (and renaming) files, or re-initializing the file system.
As another example of a problem associated with the prior art file systems, some disks can become very active while others have almost no activity. This happens when the most commonly used files are allocated to one or a few disks in the file system, while the remaining disks contain old and infrequently used files. Again the system administrator must take explicit and disruptive actions to redistribute the files among the system's disks.
Current UNIX.TM. file systems can span, or support, only a single volume, or even just a portion of one volume. A volume can be one or more physical disks, but the file system treats a multi-disk volume as a single large disk. Therefore, UNIX file systems technically span only one disk, which means that UNIX file systems utilize disk storage just as poorly, if not worse than, file systems that span multiple disks and allocate files in a device-dependent manner.
The present invention solves these problems by allowing a file system to easily, transparently (i.e., users and applications are not aware of file movement) and automatically redistribute files among its disks. To transparently move files among several disks, the file system of the present invention allocates files in a device-independent manner.